/*
 * CommandeRencontrerObstacle.cpp
 *
 *  Created on: 22 déc. 2012
 *      Author: aboursie - potier
 */

#include "CommandeRencontrerObs.h"
#include <stdlib.h>


bool CommandeRencontrerObs::initialiserArguments(vector<string> args) {
	bool flag = false;
	if (args.size() == 1) {
		hauteur = atoi(args[0].c_str());
		flag = true;
	}else{
		pile.pop();
	}
	return flag;
}

void CommandeRencontrerObs::execute() {
	try{
		robot->rencontrerObstacle(new Obstacle(hauteur));
	}catch (EtatRobot::BadAction){
		pile.pop();
	}
}

void CommandeRencontrerObs::desexecute() {
	robot->notify("Cette commande ne peut pas être annulée.");
}

Commande* CommandeRencontrerObs::constructeurVirtuel() {
	CommandeRencontrerObs* tmp = new CommandeRencontrerObs(robot);
	tmp->hauteur = hauteur;
	pile.push(tmp);
	return tmp;
}
